/**
 * Copyright &copy; 2015-2020 <a href="http://www.easyhis.com/">easyhis</a> All rights reserved.
 */
package com.easy.modules.iim.service;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.easy.common.utils.StringUtils;
import com.easy.core.persistence.Page;
import com.easy.core.service.BaseService;
import com.easy.modules.iim.entity.LayGroup;
import com.easy.modules.iim.entity.LayGroupUser;
import com.easy.modules.iim.mapper.LayGroupMapper;
import com.easy.modules.iim.mapper.LayGroupUserMapper;
import com.easy.modules.sys.entity.User;
import com.easy.modules.sys.utils.UserUtils;

/**
 * 群组Service
 * @author lgf
 * @version 2016-08-07
 */
public interface LayGroupService extends BaseService{

    public LayGroup get(String id) ;

    public List<LayGroupUser> getUsersByGroup (LayGroup layGroup);

    public List<LayGroup> findList(LayGroup layGroup) ;

    public List<LayGroup> findGroupList(User user);


    public void save(LayGroup layGroup) ;

    public void delete(LayGroup layGroup);

    /**
     * 获取单条数据
     * @param entity
     * @return
     */
    public LayGroup get(LayGroup entity);



    /**
     * 查询分页数据
     * @param page 分页对象
     * @param entity
     * @return
     */
    public Page<LayGroup> findPage(Page<LayGroup> page, LayGroup entity);




    /**
     * 删除全部数据
     * @param entitys
     */
    public void deleteAll(Collection<LayGroup> entitys) ;

    /**
     * 删除全部数据
     * @param entitys
     */
    public void deleteAllByLogic(Collection<LayGroup> entitys);


    /**
     * 获取单条数据
     * @param propertyName, value
     * @return
     */
    public LayGroup findUniqueByProperty(String propertyName, Object value);

    /**
     * 动态sql
     * @param sql
     */

    public List<Object> executeSelectSql(String sql);

    public void executeInsertSql(String sql);

    public void executeUpdateSql(String sql);

    public void executeDeleteSql(String sql);

}